package com.notice.rule.print;

import ch.qos.logback.classic.spi.ILoggingEvent;
import com.notice.entity.NoticePrint;
import org.springframework.beans.factory.InitializingBean;

/**
 * 消息通知格式加工器
 *
 * @author DZL
 * @date 2023/1/12 15:33
 */
public abstract class AbstractNoticeMsgProcessHandler implements InitializingBean {
    /**
     * 循序 order越小，越先执行
     *
     * @return >=0
     */
    abstract int order();

    /**
     * 信息加工
     *
     * @param event       日志错误节点
     * @param noticePrint 通知的信息
     * @return 加工后要通知的信息
     */
    abstract NoticePrint printProcessing(ILoggingEvent event, NoticePrint noticePrint);

    @Override
    public void afterPropertiesSet() throws Exception {
        LogNoticeMsgFactory.addHandler(this);
    }
}
